BigInteger এবং BigDecimal দুটি ক্লাস Java.math প্যাকেজের অংশ, যেগুলি বড় সংখ্যার সাথে কাজ করার জন্য ব্যবহৃত হয়। BigInteger ক্লাসটি বড় পূর্ণসংখ্যা (integers) পরিচালনা করতে ব্যবহৃত হয়, আর BigDecimal ক্লাসটি দশমিক সংখ্যা (decimals) নিয়ে কাজ করতে ব্যবহৃত হয়।
যখন আপনাকে BigInteger এবং BigDecimal এর মধ্যে কনভার্সন করতে হয়, তখন কিছু নির্দিষ্ট মেথড ব্যবহার করা হয়, যা আপনাকে এক ধরনের গাণিতিক সংখ্যাকে অন্য ধরনের গাণিতিক সংখ্যায় রূপান্তর করতে সাহায্য করে।
BigInteger থেকে BigDecimal এ কনভার্সন
BigInteger থেকে BigDecimal এ কনভার্সন করার জন্য, BigDecimal ক্লাসের কনস্ট্রাক্টর ব্যবহার করা হয়, যা একটি BigInteger কে BigDecimal এ রূপান্তর করে।
Syntax:
BigDecimal(BigInteger val)
Example:
import java.math.BigDecimal;
import java.math.BigInteger;
public class BigIntegerToBigDecimalExample {
public static void main(String[] args) {
// Create a BigInteger object
BigInteger bigInt = new BigInteger("123456789012345678901234567890");
// Convert BigInteger to BigDecimal
BigDecimal bigDec = new BigDecimal(bigInt);
System.out.println("BigDecimal from BigInteger: " + bigDec);
}
}
Output:
BigDecimal from BigInteger: 123456789012345678901234567890
ব্যাখ্যা:
BigIntegerথেকেBigDecimal-এ কনভার্সন করতেBigDecimal(BigInteger val)কনস্ট্রাক্টর ব্যবহার করা হয়েছে।BigDecimalএখন পূর্ণসংখ্যার মানBigIntegerথেকে দশমিকের মান হিসেবে তৈরি হয়েছে, যদিও এখানে কোন দশমিক স্থান নেই।
BigDecimal থেকে BigInteger এ কনভার্সন
BigDecimal থেকে BigInteger এ কনভার্সন করার জন্য, BigDecimal ক্লাসের toBigInteger() মেথড ব্যবহার করা হয়। এই মেথডটি BigDecimal এর ইনটিজার অংশ বের করে BigInteger এ রূপান্তর করে।
Syntax:
BigInteger toBigInteger()
Example:
import java.math.BigDecimal;
import java.math.BigInteger;
public class BigDecimalToBigIntegerExample {
public static void main(String[] args) {
// Create a BigDecimal object
BigDecimal bigDec = new BigDecimal("12345.6789");
// Convert BigDecimal to BigInteger
BigInteger bigInt = bigDec.toBigInteger();
System.out.println("BigInteger from BigDecimal: " + bigInt);
}
}
Output:
BigInteger from BigDecimal: 12345
ব্যাখ্যা:
BigDecimal.toBigInteger()মেথড ব্যবহার করেBigDecimalএর দশমিক স্থান বাদ দিয়ে শুধুমাত্র পূর্ণসংখ্যার অংশ রিটার্ন করেBigIntegerতে কনভার্সন করা হয়েছে।
BigDecimal থেকে BigInteger এ কনভার্সন (Round-off with scale)
যখন BigDecimal থেকে BigInteger কনভার্ট করা হয়, তখন ডেসিমাল পয়েন্টের পরে কিছু সংখ্যার অংশ বাদ পড়তে পারে। এই কারণে কিছু রাউন্ডিংয়ের প্রয়োজন হতে পারে। BigDecimal এর setScale() মেথড ব্যবহার করে রাউন্ডিং করা যেতে পারে।
Example with rounding:
import java.math.BigDecimal;
import java.math.BigInteger;
public class BigDecimalToBigIntegerWithRoundingExample {
public static void main(String[] args) {
// Create a BigDecimal object with a decimal value
BigDecimal bigDec = new BigDecimal("12345.6789");
// Round off the decimal and convert to BigInteger
BigDecimal rounded = bigDec.setScale(0, BigDecimal.ROUND_HALF_UP);
BigInteger bigInt = rounded.toBigInteger();
System.out.println("Rounded BigInteger from BigDecimal: " + bigInt);
}
}
Output:
Rounded BigInteger from BigDecimal: 12346
ব্যাখ্যা:
setScale(0, BigDecimal.ROUND_HALF_UP)ব্যবহার করে দশমিক স্থানটি রাউন্ড করা হয়েছে, এবংtoBigInteger()মেথড ব্যবহার করেBigDecimalথেকেBigIntegerতে কনভার্ট করা হয়েছে। রাউন্ডিংয়ের কারণে 12345.6789 থেকে 12346 হয়েছে।
- BigInteger to BigDecimal Conversion:
BigIntegerথেকেBigDecimalএ কনভার্সন করার জন্যBigDecimal(BigInteger val)কনস্ট্রাক্টর ব্যবহার করা হয়।
- BigDecimal to BigInteger Conversion:
BigDecimalথেকেBigIntegerএ কনভার্সন করার জন্যtoBigInteger()মেথড ব্যবহার করা হয়, যা দশমিক স্থান বাদ দিয়ে শুধুমাত্র পূর্ণসংখ্যা রিটার্ন করে।
- Rounding Decimal Values:
- BigDecimal থেকে BigInteger কনভার্সন করার আগে যদি প্রয়োজন হয়, তবে
setScale()মেথড ব্যবহার করে রাউন্ডিং করা যেতে পারে, যা সঠিক পূর্ণসংখ্যা রিটার্ন করবে।
- BigDecimal থেকে BigInteger কনভার্সন করার আগে যদি প্রয়োজন হয়, তবে
BigDecimal এবং BigInteger ক্লাসের মধ্যে কনভার্সন আপনাকে বড় এবং সঠিক সংখ্যার সাথে গাণিতিক কাজ করার সুবিধা দেয়, এবং এগুলো অত্যন্ত গুরুত্বপূর্ণ যখন আপনাকে বড় সংখ্যার সাথে কাজ করতে হয় বা যখন সঠিকতা গুরুত্বপূর্ণ।